package router

import (
	"hero/handler"
	"net/http"
)

// Router 是一个简单的路由器
type Router struct {
	handlers map[string]handler.Handler
}

// NewRouter 创建一个新的路由器
func NewRouter() *Router {
	return &Router{
		handlers: make(map[string]handler.Handler),
	}
}

// AddHandler 添加处理器
func (r *Router) AddHandler(pattern string, handler handler.Handler) {
	r.handlers[pattern] = handler
}

// ServeHTTP 实现 http.Handler 接口
func (r *Router) ServeHTTP(w http.ResponseWriter, req *http.Request) {
	path := req.URL.Path
	handle, ok := r.handlers[path]
	if !ok {
		handle = &handler.DefaultHandler{}
	}

	handle.ServeHTTP(w, req)
}
